package com.liuyi.netty.im.server.handle.storage;

import com.liuyi.netty.im.commons.enums.UserLineStatus;
import io.netty.channel.ChannelId;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * 用户信息
 */
@Data
@Accessors(chain = true)
public class User implements Serializable {

    private static final long serialVersionUID = 5065405711070900905L;

    /**
     * 登录ip
     */
    private String ip;

    /**
     * 目前所属channelId
     * {@link ChannelId#asLongText()}
     */
    private String channelId;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 所属设备
     */
    private String device;

    /**
     * 签名
     */
    private String sign;

    /**
     * 最近登录时间
     */
    private Long lastLoginTime;

    /**
     * 最近离线时间
     */
    private Long lastOfflineTime;

    /**
     * 在线状态
     */
    private UserLineStatus userLineStatus;

    public void offline(){
        this.userLineStatus = UserLineStatus.OFF;
        this.lastOfflineTime = System.currentTimeMillis();
    }
}
